#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

//这里申明了一个类MainWindow在命名空间Ui中
namespace Ui {
class MainWindow;
}

//具体类的定义,MainWindow类继承公共类QMainWindow
class MainWindow : public QMainWindow
{
    //Q_OBJECT 反正就是要加的，添加了很多东西
    //只有继承了QObject类的类，才具有信号槽的能力。所以，为了使用信号槽，必须继承QObject。
    //凡是QObject类（不管是直接子类还是间接子类），都应该在第一行代码写上Q_OBJECT。
    //不管是不是使用信号槽，都应该添加这个宏。
    //这个宏的展开将为我们的类提供信号槽机制、国际化机制以及 Qt 提供的不基于 C++ RTTI 的反射能力。
    //因此，如果你觉得你的类不需要使用信号槽，就不添加这个宏，就是错误的。其它很多操作都会依赖于这个宏。
    Q_OBJECT

public:
    //申明了构造函数的原型，并且使用explicit对其进行抑制隐式转换
    //防止隐式转换具体的例子参考 https://www.cnblogs.com/cutepig/archive/2009/01/14/1375917.html
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H
